OpenCores
no use no use 1/6 Next Last
VLC x264 GCC profiling
by marcus.erlandsson on Aug 21, 2009
marcus.erlandsson
Posts: 38
Joined: Nov 22, 2007
Last seen: Mar 7, 2013
One of the first tasks we need to do is "GCC-profiling of VLC-x264".

We want to use the following SW:

http://www.videolan.org/developers/x264.html



RE: VLC x264 GCC profiling
by ckavalipati on Aug 22, 2009
ckavalipati
Posts: 19
Joined: Aug 3, 2009
Last seen: Oct 30, 2012
List of sites from which test video sequences can be obtained (taken from x264 forum post)

"On Monday, December 18, 2006 at 18:06:40 +0800, Tonald DL wrote:
> Anybody knows where can download YUV 420 video files?
>
> I need quit a lot original video sequences with different size to do tests.

Video sequences often used for codec development are available here:

http://www.tkn.tu-berlin.de/research/evalvid/cif.html
http://www.tkn.tu-berlin.de/research/evalvid/qcif.html
ftp://ftp.tnt.uni-hannover.de/pub/svc/testsequences/

/Fredrik"


RE: VLC x264 GCC profiling
by gil_savir on Aug 23, 2009
gil_savir
Posts: 59
Joined: Dec 7, 2008
Last seen: May 10, 2021
Hi all,
I grabbed a snapshot of x264 and compiled it successfully. I'm now studying the structure of this encoder and the H.264/AVC standard in general. I think I'll try to compile it using 'prof' in order to analyze the parts that are most computing intensive. Please suggest other adequate methods/tools for the analysis.

I assume that we should use .YUV files to emulate bit-stream input. However, I'm not sure which formats should be used for the analysis. There are various parameters in this exploration space:
- pixels formats (4:4:4 / 4:2:2 / 4:2:0)
- frame sizes
- aspect ratios
- ...

I also assume that computation tasks may be affected by the nature of the test files (fast/slow motion, dark/bright scenes, homogeneous / heterogeneous scenes, and other properties). Please correct me if I'm wrong.

Therefore, in order to choose adequate test-flies for the analysis, I need some help from someone with knowledge of these parameters and their influence over encoding computation tasks.

A reference to concise material that explains the influence of these parameters would also be appreciated.
RE: VLC x264 GCC profiling
by gijoprems on Aug 24, 2009
gijoprems
Posts: 13
Joined: Jun 17, 2008
Last seen: Jan 8, 2014
Just some thoughts on profiling. I think the profiling should be categorized based on certain dependencies.
Like,
- Tools used to profile
- Machine used to run x264 (Multicore or not, RAM etc)
- Input parameters (Resolution, fps, quality of details in the sequence etc)

For profiling tools, we have variety of tolls in opensource. One of the most popular one is oprofile runs on x86, ARM etc.

What say mates?

-Gijo
RE: VLC x264 GCC profiling
by brianhxh on Aug 24, 2009
brianhxh
Posts: 5
Joined: Jul 8, 2009
Last seen: Oct 14, 2009
Hi, all

Does anyone has a version of x264 that can be compiled using Microsoft Visual Studio? It seems still having a lot of things to do for Windows compilation. I'm not familiar with linux debug environment for C, such as GDB, so can anyone help that? Thanks.

Regards

Brian

RE: VLC x264 GCC profiling
by alianov on Aug 24, 2009
alianov
Posts: 1
Joined: Mar 11, 2009
Last seen: Aug 29, 2009
Let us agree on a list of tools we will work with before diving into profilling.
RE: VLC x264 GCC profiling
by marcus.erlandsson on Aug 24, 2009
marcus.erlandsson
Posts: 38
Joined: Nov 22, 2007
Last seen: Mar 7, 2013
Just some thoughts on profiling. I think the profiling should be categorized based on certain dependencies.
Like,
- Tools used to profile
- Machine used to run x264 (Multicore or not, RAM etc)
- Input parameters (Resolution, fps, quality of details in the sequence etc)

For profiling tools, we have variety of tolls in opensource. One of the most popular one is oprofile runs on x86, ARM etc.

What say mates?

-Gijo



The ideal solution would be to port it to the OpenRISC-processor first, and then run the profiling. But I'm not sure what workload that would need?!

The alternative solution to me, is to select a processor "fairly" simliar with the OpenRISC processor. We will then get fairly accurate information about the bottlenecks etc..

What are you thought!?

/Marcus

RE: VLC x264 GCC profiling
by marcus.erlandsson on Aug 24, 2009
marcus.erlandsson
Posts: 38
Joined: Nov 22, 2007
Last seen: Mar 7, 2013
Let us agree on a list of tools we will work with before diving into profilling.


I agree, but since I'm a hardware guy I will let you guys decide tool etc :-)

/Marcus
RE: VLC x264 GCC profiling
by gijoprems on Aug 24, 2009
gijoprems
Posts: 13
Joined: Jun 17, 2008
Last seen: Jan 8, 2014
Just some thoughts on profiling. I think the profiling should be categorized based on certain dependencies.
Like,
- Tools used to profile
- Machine used to run x264 (Multicore or not, RAM etc)
- Input parameters (Resolution, fps, quality of details in the sequence etc)

For profiling tools, we have variety of tolls in opensource. One of the most popular one is oprofile runs on x86, ARM etc.

What say mates?

-Gijo



The ideal solution would be to port it to the OpenRISC-processor first, and then run the profiling. But I'm not sure what workload that would need?!

The alternative solution to me, is to select a processor "fairly" simliar with the OpenRISC processor. We will then get fairly accurate information about the bottlenecks etc..

What are you thought!?

/Marcus


Do we have an OpenRISC simulator(as in SIMULATOR)? If so, we could start with the porting so that it would be useful at the later stage of this project. Another option would be to use an ARM platform; but the effort for porting to ARM will be of no use as we progress; my two cents.
-Gijo
RE: VLC x264 GCC profiling
by toanfxt on Aug 24, 2009
toanfxt
Posts: 4
Joined: Jun 24, 2008
Last seen: Sep 18, 2017

The ideal solution would be to port it to the OpenRISC-processor first, and then run the profiling. But I'm not sure what workload that would need?!

/Marcus



Most of components in H.264 use integer operations such as motion estimation, or transformation and quantization. Thus I think profiling in x86 or others will get the same results in terms of computational load.
RE: VLC x264 GCC profiling
by marcus.erlandsson on Aug 24, 2009
marcus.erlandsson
Posts: 38
Joined: Nov 22, 2007
Last seen: Mar 7, 2013

The ideal solution would be to port it to the OpenRISC-processor first, and then run the profiling. But I'm not sure what workload that would need?!

The alternative solution to me, is to select a processor "fairly" simliar with the OpenRISC processor. We will then get fairly accurate information about the bottlenecks etc..

What are you thought!?

/Marcus


Do we have an OpenRISC simulator(as in SIMULATOR)? If so, we could start with the porting so that it would be useful at the later stage of this project. Another option would be to use an ARM platform; but the effort for porting to ARM will be of no use as we progress; my two cents.
-Gijo


Yes, the OpenRISC processor has got an architecture-simulator:
http://opencores.org/openrisc,or1ksim

It's very easy to install the whole toolchain under Linux Ubuntu (or in cygwin under windows), you just run the install-script. More info can be found here:
http://opencores.org/openrisc,gnu_toolchain

/Marcus
RE: VLC x264 GCC profiling
by marcus.erlandsson on Aug 24, 2009
marcus.erlandsson
Posts: 38
Joined: Nov 22, 2007
Last seen: Mar 7, 2013

The ideal solution would be to port it to the OpenRISC-processor first, and then run the profiling. But I'm not sure what workload that would need?!

/Marcus



Most of components in H.264 use integer operations such as motion estimation, or transformation and quantization. Thus I think profiling in x86 or others will get the same results in terms of computational load.


In that case, wouldn't it then be possible/good if we both did profiling on a "today supported processor" and in parallel started to port the whole x264 SW to the OpenRISC, since the OpenRISC will anyhow run some part of the x264 code.

Do we have enough SW-resources to handle both in parallel?

/Marcus
RE: VLC x264 GCC profiling
by goldenmean on Aug 24, 2009
goldenmean
Posts: 3
Joined: Jun 2, 2009
Last seen: May 29, 2011
Hello,

We can have people working on the port of X264 encoder to Openrisc using the openrisc toolchain. At same time, we can profile it thoroughly on Intelx86 based platform on linux as well as on windows(Just to make sure we have consistent profiling results, plus windows based profiling might tell something which gprof might not)

I was able to build, and execute the x264 encoder on a linux(Fedora) and a Intelx86 architecture. I encoded a raw yuv sequence to a .264 encoded bit stream(High profile, Level3, resolution:720x480, .
I have one question related to makefile.
Next i tried to enable profiling, i added the switch -pg in the makefile at below places,

When i run the x264 executable on linux, to encode a sequence, gmon.out is generated,
but when i use command : gprof x264 gmon.out it says
gprof: file `x264' has no symbols
and so was not able to get any profile information using gprof.

Am i missing something?
Can someone tell in detail, how to use gprof to get profile results on linux.
What changes to makefile are needed for that?

-AD.

P.S. I am also trying to build the same source on Windows using MS tools.
RE: VLC x264 GCC profiling
by gijoprems on Aug 24, 2009
gijoprems
Posts: 13
Joined: Jun 17, 2008
Last seen: Jan 8, 2014
Hello,

We can have people working on the port of X264 encoder to Openrisc using the openrisc toolchain. At same time, we can profile it thoroughly on Intelx86 based platform on linux as well as on windows(Just to make sure we have consistent profiling results, plus windows based profiling might tell something which gprof might not)

I was able to build, and execute the x264 encoder on a linux(Fedora) and a Intelx86 architecture. I encoded a raw yuv sequence to a .264 encoded bit stream(High profile, Level3, resolution:720x480, .
I have one question related to makefile.
Next i tried to enable profiling, i added the switch -pg in the makefile at below places,

When i run the x264 executable on linux, to encode a sequence, gmon.out is generated,
but when i use command : gprof x264 gmon.out it says
gprof: file `x264' has no symbols
and so was not able to get any profile information using gprof.

Am i missing something?
Can someone tell in detail, how to use gprof to get profile results on linux.
What changes to makefile are needed for that?

-AD.

P.S. I am also trying to build the same source on Windows using MS tools.

Have you tried configuring x264 with --enable-debug and compiling it?
-Gijo
RE: VLC x264 GCC profiling
by goldenmean on Aug 24, 2009
goldenmean
Posts: 3
Joined: Jun 2, 2009
Last seen: May 29, 2011
Hi Gijo,
I was able to get the profile information using gprof. I did configure with --enable-debug and --enable-prof options, and then build the source. Those two configure options were what i had not used earlier.

One General query - Do we have any common area on the H.264 Porject space wherein we can upload files for others to download, etc (e.g. Some profiling results, analysis etc..)
This kind of arrangement would help going forward.

Thanks.
-Ajit
no use no use 1/6 Next Last
© copyright 1999-2024 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.